A software application may include any number of modules (e.g., classes, functions, procedures, subroutines, or code blocks), and each module may be tested or validated individually. A software module may be tested or validated manually or automatically. In the former case, a person (e.g., a software testing engineer) may manually design test cases for the software module based on the design specification of the module, execute the module under the test cases, and check for module behavior or output that does not agree with the specification of the module in view of the test cases. In the latter case, a software-testing tool, implemented as computer software or hardware, may automatically generate test cases for a software module under test, execute the module under test while simulating the test cases, and check for module behavior or output that does not agree with the specification of the module in view of the test cases. The sheer complexity of modern software often renders manual generation or design of test cases inadequate for completely testing the software.
Java is an object-oriented programming language. It may be used to create, for example, applications and applets. An applet may be downloaded as a separate file in an Internet browser alongside a hypertext-markup-language (“HTML”) document to provide added functionality to a website. The applet may appear to be embedded in an HTML page. However, the applet may run in, for example, a container such as a Java Virtual Machine rather than in the browser or other application running the HTML page. Java may be compiled into machine code.
JavaScript is a scripting language. JavaScript typically resides in HTML documents. JavaScript is not compiled into machine code but is interpreted by an application running, for example, an HTML file together with a JavaScript interpreter. JavaScript may not create applets or standalone applications. JavaScript is an object-based, dynamic typing, static scope, and higher-order language.